package string;

/**
 * java.lang.StringBuilder
 * 它是修改字符串的一个工具类，内部维护一个可变的char数组，内存开销小，运行效率高
 * 其提供了基础的修改字符串操作:
 * 增删改插
 */
public class StringBuilderDemo {
    public static void main(String[] args) {
        //无参构造器默认表示一个空字符串
//        StringBuilder sb = new StringBuilder();

        String str = "好好学习java";
//        StringBuilder sb = new StringBuilder(str);
        StringBuffer sb = new StringBuffer(str);

//        /*
//            增加操作:append
//            好好学习java
//
//            好好学习java,为了找个好工作
//         */
//        sb.append(",为了找个好工作");
//        System.out.println(sb);
//        //通过StringBuilder将修改后的内容以字符串形式返回
//        String s = sb.toString();
//        System.out.println(s);
//
//        /*
//            修改操作:replace(替换)
//            好好学习java,为了找个好工作
//                        V
//            好好学习java,就是为了改变世界!
//         */
//        sb.replace(9,16,"就是为了改变世界!");
//        System.out.println(sb);
//
//        /*
//            删除操作:delete(删除)
//            好好学习java,就是为了改变世界!
//                        V
//            ,就是为了改变世界!
//         */
//        sb.delete(0,8);
//        System.out.println(sb);
//
//        /*
//            插入操作:insert(插入)
//            ,就是为了改变世界!
//                   V
//            活着,就是为了改变世界!
//
//            insert(int index,String str)
//            将给定内容插入到index指定位置
//         */
//        sb.insert(0,"活着");
//        System.out.println(sb);

        //增删改插四个操作返回的是StringBuilder对象本身，因此可以连续调用操作
        sb.append(",为了找个好工作")
          .replace(9,16,"就是为了改变世界!")
          .delete(0,8)
          .insert(0,"活着");
        System.out.println(sb);
        //反转字符串
        sb.reverse();
        System.out.println(sb);

    }
}








